package cn.doitedu.day03.oo

//构造器，也叫做构造方法，在new类的实例的时候会调用
//主构造器（跟在类名的后面，与类交织在一起）
class Person(val name: String, var age: Int, private val aaa: String, private[this] val bbb: Int, ccc: String) {

  //可以使用下划线，用于给指定的类型赋初始值
  var money: Double = _
  var petName: String = _

}

object Person {

  def main(args: Array[String]): Unit = {

    val p = new Person("tom", 11, "aaa", 1000, "hell")

    println(p.name)
    println(p.age)
    //val修饰的成员变量，无法修改
    //p.name = "tomcat"
    p.age = 11
    println(p.age)

    println(p.money)
    println(p.petName)

    //private修饰的
    println(p.aaa)

    //不能访问bbb，因为用private[this]修饰
    //println(p.bbb)

    //如果没有用val或var修饰的变量，不会成为类的成员变量，仅仅是构造方法的参数而已
    //以后子类继承该类，也不会有ccc属性
    //println(p.ccc)





  }


}
